package com.softer.chengxin.login.dao;

import com.softer.chengxin.corp.domin.Corp;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

import java.util.Map;

@Mapper
@Repository
public interface LoginDao {

    /**
     * 管理部门登陆
     * 根据  名字 和 密码 查询出一条数据
     *
     * @param map 参数
     * @return 数据
     */
    @Select("  SELECT id,login_name as Username FROM manager_user WHERE login_name=#{username} AND login_pwd=#{password} AND  FIND_IN_SET(role_id,#{roleId}) ")
    Map getUserByUserNameAndPassword(Map map);

    /**
     * 物业企业登陆
     * 根据  名字 和 密码 查询出一条数据
     *
     * @param map 参数
     * @return 查询的数据
     */
    @Select("SELECT id,name as Username FROM company_base_info WHERE qy_no=#{username} AND pwd=#{password}")
    Map loginCorp(Map map);


    /**
     * 注册企业信息
     *
     * @param corp 企业信息
     * @return 结果
     */
    @Insert("INSERT INTO `company_base_info`(community,`qy_no`, `name`, `register_type`, `province`, `city`, `district`,street, `business_date`, `system_type`, `registered_capital`,  `register_address`, `post_code`, `phone`,`pwd`,`business_license_no`,gmt_create,gmt_modified,state,online)" +
            " VALUES (#{corp.community},#{corp.qyNo}, #{corp.name}, #{corp.registerType}, #{corp.province}, #{corp.city},  #{corp.district}, #{corp.street},#{corp.businessTime}, #{corp.systemType}, #{corp.registeredCapital},#{corp.registerAddress}, #{corp.postCode}, #{corp.phone},#{corp.pwd},#{corp.businessLicenseNo},now(),now(),0,0)")
    @Options(useGeneratedKeys = true, keyProperty = "corp.id", keyColumn = "id")
    int addWycorpbaseinfo(@Param("corp") Corp corp);


    /**
     * 查询sqno最大的id
     *
     * @return sqno
     */
    @Select(" select max(order_no) from sqno")
    String getMaxOrderNo();

    /**
     * 插入最大的sqno
     *
     * @param map
     */
    @Insert("INSERT INTO `sqno`(`order_no`,`sq_type`, `remark`) VALUES (#{order_no},#{sq_type} ,#{remark})")
    void addSqnoinfo(Map map);

    /**
     * 检测统一社会信用代码企业工商营业执照号是否已经注册过
     *
     * @param code 统一社会信用代码企业工商营业执照号
     * @return 企业账号
     */
    @Select("SELECT qy_no FROM company_base_info WHERE business_license_no=#{code}")
    String checkBusinessNo(@Param("code") String code);

    /**
     * 检测企业名是否注册过
     *
     * @param name 企业名
     * @return 企业账号
     */
    @Select("SELECT qy_no FROM company_base_info WHERE name=#{name}")
    String checkQyName(@Param("name") String name);

    /**
     * 修改企业在线状态
     * @param userName 企业账号
     * @param online 状态
     */
    @Update("UPDATE company_base_info SET `online`=#{online} WHERE qy_no=#{name}")
    void updateCompanyOnline(@Param("name")String userName, @Param("online")String online);
}
